Key word based media content searching

ABSTRACT

A method may include receiving, from a user device, a search query associated with identifying media content items available from a service provider. A database of key words associated with a plurality of media content items is searched to identify a set of media content items having key words associated therewith that match the search query. It is determined, for each media content item in the set of media content items, whether the matching key word is a global key word representative of the media content item in its entirety, or a local key word representative of one or more portions of the media content item. The set of media content items based on the determining. The ranked set of media content items is transmitted to the user device for display to a user.

BACKGROUND INFORMATION

Television service providers typically allow customers to search forcontent, such as programming content, video on demand (VOD) content,etc. However, due to limitations associated with the typical contentsearch tool and the television interface, discovering content ofinterest is often difficult. As a result, customers often bypass usingthe search tool provided by the service provider.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary network in which systems and methodsdescribed herein may be implemented;

FIG. 2 illustrates an exemplary configuration of one or more of thedevices of FIG. 1;

FIG. 3 illustrates an exemplary configuration of logic componentsimplemented in the content search program of FIG. 1;

FIG. 4 illustrates an exemplary table used by the content search programof FIG. 3;

FIG. 5 is a flow diagram illustrating exemplary processing for searchingcurrently airing program content based on one or more key words;

FIG. 6 is a flow diagram illustrating exemplary processing for rankingcurrently airing program content based on one or more key wordsidentified in relation to the program content; and

FIGS. 7A-7C depict tables that illustrate exemplary key word matches fora series of content items at different points in time based on themethodology described herein.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following detailed description refers to the accompanying drawings.The same reference numbers in different drawings may identify the sameor similar elements. Also, the following detailed description does notlimit the invention.

Implementations described herein relate to searching for live orcurrently airing programming content, such as broadcast or pay-per-viewvideo content for display on a television. In an exemplaryimplementation, a content service provider may store key word metadatacorresponding to discrete portions of the video content. The key wordsassigned to the portions are selected to include terms that aredescriptive of the content in the corresponding portions. The portionscorresponding to the video content may include the entire content, inwhich case the key words are referred to as global key words, ordiscrete portions of the video content each of which is less than theentirety, in which case the key words are referred to as local keywords.

When a user wishes to find currently airing programming content view,the user provides a key word based search query, for example to a settop box associated with the service provider. In response to the query,a search engine searches the stored key word metadata and determines ifthe search query matches one of the stored key words assigned to one ormore currently airing video content programs. If more than one contentprogram having matching key words are identified, the search engineranks the results based on several factors, such as whether the key wordidentified for a particular program is a global key word or a local keyword, the portion of the program that is currently airing, etc. In thismanner, the search engine may provide the most relevant search resultsto the user, thereby enabling a more enjoyable viewing experience.

FIG. 1 is a block diagram of an exemplary network 100 in which systemsand methods described herein may be implemented. Network 100 may includeclient device 110, output device 120, remote control 130, user device140, service provider 150 and network 160.

Client device 110 may include any type of device that is able to receivedata, such as text data, video data, image data, audio data, multi-mediadata, etc., transmitted from a source, such as service provider 150.Client device 110 may decode the data and output the data to an outputdevice, such as output device 120, for viewing or playing. In anexemplary implementation, client device 110 may include a set top box(STB) used to decode incoming multi-media data, such as multi-media datareceived from a television service provider, a cable service provider, asatellite system, a wireless system or some other wired, wireless oroptical communication medium. The term “set top box” as used hereinshould be construed to include any device used to receive signals froman external source and output the signals for viewing or playing. Insome implementations, client device 110 may forward the decoded data forviewing or playing by another device, such as output device 120. Inother implementations, client device 110 may play and display thedecoded media.

For example, in some implementations, client device 110 may include sometype of computer, such as a personal computer (PC), laptop computer,home theater PC (HTPC), a smart phone, a tablet computer, etc., that isable to receive incoming data and decode the incoming data for output toa display, which may be included with client device 110. In thisinstance, a client device 110 may include logic, such as a cable card,television card or other logic, to interface with service provider 150.

Output device 120 may include any device that is able to output/displayvarious media, such as a television, monitor, PC, laptop computer, HTPC,a personal digital assistant (PDA), a web-based appliance, a mobileterminal (e.g., a cellular phone, a smart phone, tablet computer), etc.In an exemplary implementation, output device 120 may receivemulti-media data from client device 110 and display or play the media.

Remote control 130 may include a device that allows a user to controlprogramming (e.g., change channels) and/or content displayed on atelevision/output device via interaction with client device 110, such asvia infrared (IR) signaling. Remote control 130 may also allow a user tosearch for various content provided by service provider 150, asdescribed in detail below.

User device 140 may include a laptop computer, a tablet computer, anotebook computer, a PC, an ultra mobile personal computer (UMPC), anetbook, a game-playing device/console, or other types of computation orcommunication devices, threads or processes running on these devices,and/or objects executable by these devices. User device 140 may alsoinclude any type of communication device, such as a personal digitalassistant (PDA) that can include a radio, a mobile telephone (e.g., acell phone), a smart phone (e.g., that may combine a cellular radio withdata processing and data communications capabilities), etc. In oneimplementation, user device 140 may include any device (e.g., anInternet Protocol (IP)-based device) that is capable of communicatingvia a network to request content.

User device 140 may also be configured to interact with and connect toother devices in network 100 (e.g., client device 110, output device120, and/or a home router (not shown) via a local network (e.g., a homewired or wireless network). For example, user device 140 may connect toclient device 110 and act as a remote control with respect toprogramming provided by client device 110, enter a search query toclient device 110, etc. In other embodiments, user device 140 mayconnect to client device 110, where client device 110 is a home router.User device 140 may then receive and output content from the televisionservice provider without involving a set top box or television. Userdevice 140 may connect to network 160 via wired, wireless, or opticalconnections.

Service provider 150 may include one or more computing devices/systems,servers and/or backend systems that are able to connect to network 160and transmit and/or receive information via network 160. In oneimplementation, service provider 150 may include a server (e.g., acomputer system or an application), a cable head-end, and/or abroadcaster capable of providing content (e.g., TV programming, movies,video on demand (VOD) services, live television, news feeds, blog feeds,widgets, applications, etc.), advertisements, instructions, codes,encryption keys, and/or other information associated with productsand/or services, etc., to client device 110 and user device 140.

Service provider 150 may also include content search program 155. In anexemplary implementation, content search program 155 may allow a user tosearch for content provided by service provider 150. For example, usersmay access content search program 155 via interaction with remotecontrol 130 and/or user device 140 and search for content, as describedin more detail below.

Network 160 may include one or more wired, wireless and/or opticalnetworks that are capable of receiving and transmitting data, voiceand/or video signals, including multi-media signals that include voice,data and video information. For example, network 160 may include one ormore public switched telephone networks (PSTNs) or other type ofswitched network. Network 160 may also include one or more wirelessnetworks and may include a number of transmission towers for receivingwireless signals and forwarding the wireless signals toward the intendeddestinations. Network 160 may further include one or more satellitenetworks, one or more packet switched networks, such as an Internetprotocol (IP) based network, a local area network (LAN), a wide areanetwork (WAN), a personal area network (PAN) (e.g., a wireless PAN), anintranet, the Internet, or another type of network that is capable oftransmitting data.

The exemplary configuration illustrated in FIG. 1 is provided forsimplicity. It should be understood that a typical network may includemore or fewer devices than illustrated in FIG. 1. For example, althoughone client device 110, one output device 120, one remote control 130,one user device 140, one service provider 150, and one network 160 havebeen illustrated in FIG. 1, in practice, there may be more clientdevices 110, output devices 120, remote controls 130, user devices 140,service providers 150 and/or networks 160. Network 100 may also includeadditional elements, such as switches, gateways, routers, backendsystems, etc., that aid in routing information, such as content orinformation from service provider 150 to client devices 110, outputdevices 120, remote control 130 and user device 140.

Further, various functions are described below as being performed byparticular components in network 100. In other implementations, variousfunctions described as being performed by one device may be performed byanother device or multiple other devices, and/or various functionsdescribed as being performed by multiple devices may be combined andperformed by a single device. For example, in some embodiments, elementsof content search program 155 may be performed by client device 110 oruser device 140.

FIG. 2 illustrates an exemplary configuration of service provider 150.Other devices in network 100, such as client device 110, output device120, remote control 130 and user device 140 may be configured in asimilar manner. Referring to FIG. 2, service provider 150 may includebus 210, processor 220, memory 230, input device 240, output device 250and communication interface 260. Bus 210 may include a path that permitscommunication among the elements of service provider 150.

Processor 220 may include one or more processors, microprocessors, orprocessing logic that may interpret and execute instructions. Memory 230may include a random access memory (RAM) or another type of dynamicstorage device that may store information and instructions for executionby processor 220. Memory 230 may also include a read only memory (ROM)device or another type of static storage device that may store staticinformation and instructions for use by processor 220. Memory 230 mayfurther include a solid state drive (SDD). Memory 230 may also include amagnetic and/or optical recording medium (e.g., a hard disk) and itscorresponding drive.

Input device 240 may include a mechanism that permits a user to inputinformation to service provider 150, such as a keyboard, a keypad, amouse, a pen, a microphone, a touch screen, voice recognition and/orbiometric mechanisms, etc. Output device 250 may include a mechanismthat outputs information to the user, including a display, a printer, aspeaker, etc.

Communication interface 260 may include a transceiver that serviceprovider 150 (or client device 110, output device 120, remote control130 or user device 140) may use to communicate with other devices viawired, wireless or optical mechanisms. Communication interface 260 mayalso include one or more radio frequency (RF) transmitters, receiversand/or transceivers and one or more antennas for transmitting andreceiving RF data via network 160. Communication interface 260 may alsoinclude a modem or an Ethernet interface to a LAN or other mechanismsfor communicating with elements in a network, such as network 160 oranother network.

The exemplary configuration illustrated in FIG. 2 is provided forsimplicity. It should be understood that service provider 150 (or clientdevice 110, output device 120, remote control 130 or user device 140)may include more or fewer devices than illustrated in FIG. 2. In anexemplary implementation, service provider 150 (or client device 110,output device 120, remote control 130 or user device 140) may performoperations in response to processor 220 executing sequences ofinstructions contained in a computer-readable medium, such as memory230. A computer-readable medium may be defined as a physical or logicalmemory device. The software instructions may be read into memory 230from another computer-readable medium (e.g., a hard disk drive (HDD),SSD, etc.), or from another device via communication interface 260.Alternatively, hard-wired circuitry may be used in place of or incombination with software instructions to implement processes consistentwith the implementations described herein. Thus, implementationsdescribed herein are not limited to any specific combination of hardwarecircuitry and software.

FIG. 3 illustrates an exemplary configuration of logic componentsimplemented in content search program 155 of FIG. 1. In an exemplaryimplementation, all or some of the components illustrated in FIG. 3 maybe stored in memory 230 and executed by processor 220. Referring to FIG.3, content search program 155 may include user interface logic 310, keyword database 320, search logic 330, and communication logic 340.Content search program 155 and its various logic components aredescribed as being included in service provider 150. In alternativeimplementations, these components or a portion of these components maybe located externally with respect to service provider 150. For example,in some implementations, one or more of the components of content searchprogram 155 may be located in or executed by client device 110, outputdevice 120, remote control 130 or user device 140.

User interface logic 310 may include logic to provide a user with aninterface to enter information associated with identifying contentand/or information of interest. For example, user interface logic 310may include a graphical user interface (GUI) that allows a user toeasily enter information, via remote control 130 or user device 140, tosearch for currently airing television content.

Key word database 320 may include one or more databases/tables ofinformation identifying programs and other content available to users(also referred to herein as customers) and key word informationassociated with the available content. For example, key word database320 may include a table that stores key word metadata associated witheach item of available content or, as briefly described above, withspecific portions of each content item (e.g., chapters). As an example,FIG. 4 illustrates an exemplary table 400 stored in database 320.

Referring to FIG. 4, table 400 includes a plurality of entries 402-1 to402-n that correspond to individual content items (e.g., televisionprograms or movies). Each entry 402 includes a title field 404, a globalkey words field 406, and a number of sub-entries 408 that correspond todiscrete portions (i.e., chapters) for the particular content items. Asused herein, the term chapter is generally defined to correspond to anytime interval or content segment within a content item. Such timeintervals may be uniform or variable and, in some instances, maycomprise an entirety of the content item. Each sub-entry 408 includes,for example, chapter field 410, local key words field 412, start timefield 414, and end time field 416. In other implementations, table 400may include additional fields and/or other fields.

Title field 404 may include the title of the content, such as the movietitle, television show title, etc. Global key words field 406 mayinclude key words that are associated with the content item in itsentirety (e.g., with each chapter in the content item). Chapter field410 may include an indication of a chapter number within a particularcontent item. Local key words field 412 may include key words that areassociated only with the particular chapter (i.e., identified in chapterfield 410) of the content item. Start time field 414 may include anindication of a relative start time of a particular content chapter. Endtime field 416 may include an indication of a relative end time of aparticular content chapter. For example, a first chapter in a contentitem may include a start time field value of 0:00 and an end time fieldvalue of 5:07, a second chapter in the content item may include a starttime field value of 5:08 and an end time field value of 11:18, etc.

Referring back to FIG. 3, search logic 330 may include logic foridentifying content based on a search query provided by the user. Forexample, search logic 330 may receive a search query via user interfacelogic 310, access key word database 400 to search for matching keywords, rank the matching content items based on various factors, andprovide the ranked search results to the user via user interface logic310. In an exemplary implementation, search logic 330 may search globalkey words field 406 and local key words field 408 based on the receivedsearch query. As described in detail below, search logic 330 may rankthe matching content items based on whether the matching key word is aglobal key word for the content item or a local key word for the contentitem, as well as based on the current playback position within thecontent item.

Communication logic 350 may include logic for communicating with otherdevices in network 100. For example, communication logic 350 may receivea search query via user interface logic 310 and forward the search queryto search logic 340. Communication logic 350 may also forward searchresults generated by search logic 340 to the customer, as described inmore detail below.

FIG. 5 is a flow diagram illustrating exemplary processing for searchingcurrently airing program content based on one or more key words.Processing may begin with a user interfacing with output device 120(e.g., a TV) and/or client device 110 (e.g., STB) to access or launchcontent search program 155 (block 505). Alternatively, the customer mayuse user device 140 (e.g., a smart phone or tablet computer) to accesscontent search program 155.

In either case, after accessing or launching content search program 155,the user may interact with content search program 155 to provide a querythat includes one or more key words indicative of the type of programcontent that the customer is trying to locate (block 510). For example,user interface logic 310 may provide a GUI that includes an input boxfor receiving one or more key words from the user. The user, via akeypad or control keys on remote control 130 (or user device 140), mayinteract with the GUI to enter the requested key words. In this example,assume that the user would like to search for program content in thesuspense thriller category or genre. Therefore, assume that the userenters the search query “thriller” in the provided input box in the GUI.

Search logic 330 receives the search query (block 515). Search logic 330then accesses database 320 to identify content items that match the term(or terms) in the received search query (block 520). As discussed above,the key words stored in database 320 may be defined as either global keywords in field 406 or local key words in field 408. For example, searchlogic 330 may search table 400 in database 320 based on the search query“thriller” and may identify the content associated with entries 402-1and 402-3 as including the key word “thriller.”

Next, it is determined whether one or more content item has been foundthat matches the provided key words (block 525). If no matching contentitems have been found (block 525—NO), processing continues to block 530,where the user is notified that no results were found (e.g., via theGUI). However, if one or more content item is found that matches theprovided key words (block 525—YES), it is then determined whether onlyone or more than one content item has been found (block 535). If onlyone matching content item has been found (block 535—ONE), the processcontinues to block 540 where an indication of the identified contentitem is provided to the user. For example, a description of the contentitem may be provided via the GUI. If more than one matching content itemhas been found (block 535—TWO+), processing continues to block 545 inwhich the matching content items are ranked to provide a ranked listingbased on a determined relevance to the user's query. At block 550, theranked listing of matching content items is provided to the user (e.g.,via the GUI). Exemplary processing of block 545 is described inadditional detail below in relation to FIG. 6.

FIG. 6 is a flow diagram illustrating exemplary processing for rankingcurrently airing program content based on one or more key wordsidentified in relation to the program content (e.g., block 545 describedbriefly above). As described above, the processing described in FIG. 6may be performed by search logic 330 in the event that a key word searchhas identified more than one matching content item that is currentlyavailable for viewing. Processing may begin with an identification of anext (or first) matching content item (block 605). For example, usingthe “thriller” example described above, search logic 330 may identify afirst entry 402-1.

Next, for the identified matching content item (e.g., entry 402-1),search logic 330 may determine a currently airing location or chapterwithin the content item (block 610). For example, search logic 330 mayretrieve broadcast information relating the content item that indicatesa start time and end time for the current broadcast of the content item.Such broadcast information may be retrieved, for example, from a programguide or the like. Search logic may then determine the current chapterby comparing the start and end times for the content to the relativestart and end times associated with the content item entry 402 in table400 (e.g., from fields 414 and 416 in table 400).

Next, search logic 330 may determine whether the matching key word is aglobal key word or a local key word with respect to the matching contentitem (block 615). If the matching key word is a global key word withrespect to the matching content item (block 615—GLOBAL), search logic330 may calculate a score associated with the content item based on thematching global key word and the currently airing chapter information(block 620). For example, the score for a content item having a matchingglobal key word may be calculated such that the score for the contentitem is reduced as the current location within the content itemprogresses. Put more plainly, a matching global key word for a contentitem that has just begun (i.e., having a higher percentage of not yetaired content) is scored higher than a matching global key word for acontent item that is half over (i.e., having a lower percentage of notyet aired content), which in turn is scored higher than a matching keyword for a content item that is almost over (i.e., having a still lowerpercentage of not yet aired content). In one exemplary embodiment, thisscoring methodology may be expressed as:score=(n−p+1)/n,  (1)where n represents a total number of chapters in the content item, and prepresents the currently airing chapter. As shown, the score for contentitems having matching global key words can be seen as indirectlyproportional to the currently airing chapter (p), such that as thecurrently airing chapter p increases, the corresponding score decreases.

Accordingly, for the “thriller” global key word example described abovefor entry 402-1, assume that the currently airing chapter is chapter 3(of five total chapters). In this example, the score for the contentitem corresponding to entry 402-1 may be calculated as (5−3+1)/5, whichequals 0.6 or 60%.

After a content item score has been calculated, processing continues toblock 625 where it is determined whether additional matching contentitems (e.g., entries 402) have been identified. If additional matchingentries remain to be scored (block 625—YES), the process returns toblock 605 for identification of the next matching entry. However, if allmatching entries have been scored (block 625—NO), search logic 330 ranksor orders the identified content items based on their respective scores(block 630).

Returning to block 615, when it is determined that the matching key wordis a local key word (block 615—LOCAL), search logic 330 initiallyidentifies sub-entries 408 corresponding to current content item entry402 (identified in block 605) that have a matching local key word thatcorresponds to the currently airing chapter or a later in time chapterwithin the matching entry 402 (block 635). For example, assume that thekey word query received from the user is “treasure hunt” and that thecurrently airing chapter is chapter 2 (e.g., identified in block 610).In this example, search logic 330 may identify sub-entries 408-3 and408-4 as matching sub-entries concurrent with or following the currentlyairing chapter (i.e., chapter 3), since sub-entry 408-2, correspondingto currently airing chapter 2, does not include the matching key word“treasure hunt” in local key word field 412.

Next, search logic 330 calculates scores associated with the identifiedchapters (e.g., 3 and 4) in the content item based on the location ofthe chapters with the matching key word relative to the currently airingchapter (block 640). In this manner, chapters having matching key wordsare scored with a bias toward the currently airing location, to providethe most up-to-date relevant listing of content items to the user.Chapters without matching key words or chapters that have previouslyaired are scored as zero. In one exemplary embodiment, this scoringmethodology for non-zero chapters may be expressed as:chapter_(q)score=1/(n+q−p),  (2)where q represents the chapter being scored, n represents a total numberof chapters in the content item, and p represents the number of thecurrently airing chapter. The difference (q-p) between the chapter beingscored and the currently airing chapter may also be referred to as arelevance gap. Accordingly, for the “treasure hunt” example set forthabove, the score for chapter 3 is expressed as 1/(5+3−2), where thetotal chapters in the content is 5, the chapter being scored is 3, andthe currently airing chapter is 2. This calculation results in a scoreof 0.1667 or 16.7%. Similarly, the score for chapter 4 may expressed as1/(5+4−2), which equals 0.143 or 14.3%. Effectively, as the chapterbeing scored is further separated in time from the currently airingchapter, the score for the chapter is reduced, thereby reducing theeffect that key word matches in later chapters have on the overall scorefor the content item.

Next, search logic 330 aggregates the scores for each chapter in thecontent item to generate an aggregated content item score (block 645).In one exemplary embodiment, chapter score aggregation may be expressedas:

$\begin{matrix}{{{score} = {\sum\limits_{i = 1}^{n}\;{{chapter}_{i}{score}}}},} & (3)\end{matrix}$where the individual chapter scores for each chapter in the content item(of n total chapters) are summed together.

For example, using the content item associated with entry 402-1 and the“treasure hunt” key word described above, where chapter 2 is thecurrently airing chapter, the total aggregated content item score iscalculated as: chapter₁ score+chapter₂ score+chapter₃ score+chapter₄score+chapter₅ score, or 0+0+16.7%+14.3%+0, which equals a totalaggregated content item score of 31%.

After the aggregated content item score has been calculated, processingcontinues to block 625 where it is determined whether additionalmatching content items (e.g., entries 402) have been identified. Ifadditional matching entries remain to be scored (block 625—YES), theprocess returns to block 605 for identification of the next matchingentry. However, if all matching entries have been scored (block 635—NO),search logic 330 continues to block 630, described above.

Based on the methodology described above, scores calculated for contentitems dynamically change based on the relative current playback positionwithin the content item at the time of the ranking. Accordingly, a samekey word query performed at a different time may result in a differentranking of matching content items. FIGS. 7A to 7C are tables thatillustrate exemplary key word matches for a series of content items atdifferent points in time.

More specifically, FIG. 7A illustrates eight content items 705-1 to705-8 (i.e., Movie 1 to Movie 8) with a currently airing chapter at afirst point in time, each of which include one or more chapters. Forpurposes of simplicity, all content items 705 are indicated as includingfive chapters, although any number of chapters may be associated witheach content item. As shown, the chapters for each content item may bestaggered with respect to each other. For example, chapter 1 for contentitem 705-1 may correspond in broadcast time to chapter 2 in content item705-2, as shown in FIG. 7A. This accommodates typical programscheduling, in which content having different overall lengths anddifferent chapter lengths may be airing simultaneously.

As shown in FIG. 7A, each matching key word for each content item may beindicated, in its respective chapter, by either a G for a global keyword or an L for a local key word, followed by an indication of thechapter number with which it corresponds. Movie 1 (content item 705-1)is currently airing chapter 1 and includes a matching global key word Gthat associated with all chapters 1-5. Movie 2 (content item 705-2) iscurrently airing chapter 2 and also includes a matching global key wordG associated therewith. Movie 3 (content item 705-3) is currently airingchapter 1 and includes a matching local key word L associated withchapters 1 and 2. Movie 4 (content item 705-4) is currently airingchapter 1 and includes matching local key word L associated withchapters 2 and 3. Movie 5 (content item 705-5) is currently airingchapter 1 and includes matching local key word L associated withchapters 1 and 5. Movie 6 (content item 705-6) is currently airingchapter 2 and includes matching local key word L associated withchapters 2 and 3. Movie 7 (content item 705-7) is currently airingchapter 3 and includes matching local key word L associated withchapters 3 and 4. Movie 8 (content item 705-8) is currently airingchapter 2 and includes matching local key word L associated withchapters 4 and 5.

Based on the exemplary methodology described above, each content item705 may be scored based on 1) the type of matching key word identified(e.g., global or local), and 2) the relative proximity in time of thecurrent location in the content item to the matching portion or portionsof the content item.

In one embodiment, for content items 705-1 and 705-2 in which a matchingglobal key word has been identified (e.g., block 615—GLOBAL), scores forthe content items may be calculated using equation (1) described above.Accordingly, for content item 705-1 (Movie 1), the score may becalculated as (5−1+1)/5 or 100%. Similarly, for content item 705-2(Movie 2), the score may be calculated as (5−2+1)/5 or 80%.

For content items 705-3 to 705-8 in which a matching local key word hasbeen identified in at least one chapter (e.g., block 615—LOCAL),aggregated chapter scores for the content items may be calculated usingequations (2) and (3) described above. Accordingly, for content item705-3 (Movie 3), the individual chapter scores for chapters 1 and 2 (thechapters having the matching key word) score may be calculated as 20%and 16.7%, respectively. Collectively, given that chapters withoutmatching key words associated therewith are scored as 0, the aggregatescore for content item 705-3 is calculated as 20+16.6%=36.7%. Scores forcontent items 705-4 to 705-8 may be similarly calculated, resulting inscores of 31% for content item 705-4 (Movie 4), 31.1% for content item705-5 (Movie 5), 36.7% for content item 705-6 (Movie 6), 36.7% forcontent item 705-7 (Movie 7), and 26.8% for content item 705-8 (Movie8).

Following score calculation for all content items 705, the content itemsare ranked based on the calculated scores. Using the values calculatedin the example of FIG. 7A, at the first point in time the content itemsare ranked as follows:

1.) Movie 1 (100%)

2.) Movie 2 (80%)

3.) Movie 3, Movie 6, Movie 7 (36.7%)

4.) Movie 5 (31.1%)

5.) Movie 4 (31%)

6.) Movie 8 (26.8%)

As described above, content items 705 may then be displayed (block 550)in this ranked manner. For example, the movies or content items having ascore that exceeds a particular threshold (e.g., 15%, 25%, 50%, etc.),may be ranked and/or displayed graphically. In some embodiments, thethreshold applied may be configurable by a user or the service provider.In other implementations, a ranked listing of all matching content itemsmay be provided.

FIG. 7B illustrates the same set of content items at a second point intime that is one chapter advanced from the first point in time. Forexample, assume that a user entered the same search query (key words) asrepresented in FIG. 7A, simply at a later point in time. As shown, atthis second point in time, Movie 1 (content item 705-1) is currentlyairing chapter 2 and includes a matching global key word G. Movie 2(content item 705-2) is currently airing chapter 3 and also includes amatching global key word G associated therewith. Movie 3 (content item705-3) is currently airing chapter 2 and includes a matching local keyword L associated with chapter 2. Movie 4 (content item 705-4) iscurrently airing chapter 2 and includes matching local key word Lassociated with chapters 2 and 3. Movie 5 (content item 705-5) iscurrently airing chapter 2 and includes matching local key word Lassociated with chapter 5. Movie 6 (content item 705-6) is currentlyairing chapter 3 and includes matching local key word L associated withchapter 3. Movie 7 (content item 705-7) is currently airing chapter 4and includes matching local key word L associated with chapter 4. Movie8 (content item 705-8) is currently airing chapter 3 and includesmatching local key word L associated with chapters 4 and 5.

As described above, each content item 705 may be scored based on 1) thetype of matching key word identified (e.g., global or local), and 2) therelative proximity in time of the current location in the content itemto the matching portion or portions of the content item.

In one embodiment, for content items 705-1 and 705-2 in which a matchingglobal key word has been identified (e.g., block 615—GLOBAL), scores forthe content items may be calculated using equation (1) described above.Accordingly, for content item 705-1 (Movie 1), the score may becalculated as (5−2+1)/5 or 80%. Similarly, for content item 705-2 (Movie2), the score may be calculated as (5−3+1)/5 or 60%.

For content items 705-3 to 705-8 in which a matching local key word hasbeen identified in at least one chapter (e.g., block 615—LOCAL),aggregated chapter scores for the content items may be calculated usingequations (2) and (3) described above. Accordingly, for content item705-3 (Movie 3), the chapter score for chapter 2 (the remaining chapterthat includes a matching key word) may be calculated as 1/(5+2−2)=20%,respectively. Given that no remaining chapters of item 705-3 includematching key words, the total aggregate score for content item 705-3 iscalculated as 0+20+0+0+0=20%. Scores for content item 705-4 to 705-8 maybe similarly calculated, resulting in scores of 36.7% for content item705-4 (Movie 4), 12.5% for content item 705-5 (Movie 5), 20% for contentitem 705-6 (Movie 6), 20% for content item 705-7 (Movie 7), and 31% forcontent item 705-8 (Movie 8).

Following score calculation for all content items 705 at the secondpoint in time, the content items are ranked based on the calculatedscores. Using the values calculated in the example of FIG. 7B at thesecond point in time, the content items are ranked as follows:

1.) Movie 1 (80%)

2.) Movie 2 (60%)

3.) Movie 4 (36.7%)

4.) Movie 8 (31%)

5.) Movie 3, Movie 6, Movie 7 (20%)

6.) Movie 5 (12.5%)

As described above, content items 705 may then be displayed (block 550)in this, or another, ranked manner.

FIG. 7C illustrates the same set of content items at a third point intime that is one chapter advanced from the second point in time (and twochapters advanced from the first point in time). For example, assumethat a user entered the same search query (key words) as represented inFIGS. 7A and 7B, at a still later point in time. As shown, at this thirdpoint in time, Movie 1 (content item 705-1) is currently airing chapter3 and includes a matching global key word G and Movie 2 (content item705-2) is currently airing chapter 4 and also includes a matching globalkey word G associated therewith. Movie 3 (content item 705-3) iscurrently airing chapter 3 and does not include any current or futurechapters that include matching key words. Movie 4 (content item 705-4)is currently airing chapter 3 and includes matching local key word Lassociated with chapter 3. Movie 5 (content item 705-5) is currentlyairing chapter 3 and includes matching local key word L associated withchapter 5. Movie 6 (content item 705-6) is currently airing chapter 4and does not include any current or future chapters that includematching key words. Movie 7 (content item 705-7) is currently airingchapter 5 and also does not include any current or future chapters thatinclude matching key words. Movie 8 (content item 705-8) is currentlyairing chapter 4 and includes matching local key word L associated withchapters 4 and 5.

As described above, each content item 705 may be scored based on 1) thetype of matching key word identified (e.g., global or local), and 2) therelative proximity in time of the current location in the content itemto the matching portion or portions of the content item.

In one embodiment, for content items 705-1 and 705-2 in which a matchingglobal key word has been identified (e.g., block 615—GLOBAL), scores forthe content items may be calculated using equation (1) described above.Accordingly, for content item 705-1 (Movie 1), the score may becalculated as (5−3+1)/5 or 60%. Similarly, for content item 705-2 (Movie2), the score may be calculated as (5−4+1)/5 or 40%.

For content items 705-3 to 705-8 in which no matching local key wordsare found for current or future chapters, these scores are set to 0.Accordingly, content items 705-3 (Movie 3), 705-6 (Movie 6), and 705-7(Movie 7) are assigned scores of 0 and consequently dropped from thefinal ranked list. Aggregated chapter scores for the remaining local keyword matching content items may be calculated using equations (2) and(3) described above. Accordingly, for content item 705-4 (Movie 4), thechapter score for chapter 3 (the remaining chapter that includes amatching key word) may be calculated as 1/(5+3−3)=20%. Given that noremaining chapters of item 705-4 include matching key words, the totalaggregate score for content item 705-4 is calculated as 0+0+20+0+0=20%.Scores for content item 705-5 and 705-8 may be similarly calculated,resulting in scores of 14.3% for content item 705-5 (Movie 5) and 36.7%for content item 705-8 (Movie 8).

Following score calculation for all remaining matching content items 705at the third point in time, the content items are ranked based on thecalculated scores. Using the values calculated in the example of FIG. 7Cat the third point in time, the content items are ranked as follows:

1.) Movie 1 (60%)

2.) Movie 2 (40%)

3.) Movie 8 (36.7%)

4.) Movie 4 (20%)

5.) Movie 5 (14.3%)

As illustrated above, the methodology described herein allows fordynamically modified relevancy rankings at different points in timeduring the airing of content items. This approach allows for accurateup-to-the-minute search results that help to provide customers with amore satisfying viewing experience.

Implementations described herein relate to searching for programmingcontent. As described above, a service provider may store key words orterms associated with available content as one of two types of keywords, either global key words that apply to an entire content item, orlocal key words that apply to one or more chapters (e.g., portions oftime) within particular content items. The service provider may thendetermine whether one or more terms in a search query received from auser matches one of the key words/terms. The service provider weighs orscores the content items having matching key words to generate a rankedlisting which is then provided to the user for selection of a particularcontent item for viewing.

As described above, in some embodiments, the content items are scoredbased on the type of matching key word (e.g., global or local key word),and the currently airing chapter relative to the matching key words. Forexample, for global key words, content items having a relatively longerremaining portion are scored more highly than content items with arelatively shorter remaining portion. Further, for matching local (e.g.,chapter-specific) key words, the current or future individual chaptersthat have the matching local key words are scored and aggregated basedon, for example, the distance in time from or proximity to the currentlyairing chapter.

Alternatively, the effect of the currently airing chapter may bereplaced by a future time indicated by a user. For example, a user inputmay shift the current chapter interval to a next chapter and the contentitems may be scored with a bias toward a proximity to the next chapter.In this manner, the scoring may be relevant to a delay in the user'santicipated viewing time.

In the preceding specification, various preferred embodiments have beendescribed with reference to the accompanying drawings. It will, however,be evident that various modifications and changes may be made thereto,and additional embodiments may be implemented, without departing fromthe broader scope of the invention as set forth in the claims thatfollow. The specification and drawings are accordingly to be regarded inan illustrative rather than restrictive sense. For example, while aseries of blocks has been described with respect to FIGS. 5 and 6, theorder of the blocks may be modified in other implementations. Further,non-dependent blocks may be performed in parallel.

It will be apparent that different aspects of the description providedabove may be implemented in many different forms of software, firmware,and hardware in the implementations illustrated in the figures. Theactual software code or specialized control hardware used to implementthese aspects is not limiting of the invention. Thus, the operation andbehavior of these aspects were described without reference to thespecific software code—it being understood that software and controlhardware can be designed to implement these aspects based on thedescription herein.

Further, certain portions of the invention may be implemented as a“component” or “system” that performs one or more functions. Thesecomponents/systems may include hardware, such as a processor, an ASIC,or a FPGA, or a combination of hardware and software.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of the invention. In fact, many ofthese features may be combined in ways not specifically recited in theclaims and/or disclosed in the specification. Although each dependentclaim listed below may directly depend on only one other claim, thedisclosure of the invention includes each dependent claim in combinationwith every other claim in the claim set.

No element, act, or instruction used in the present application shouldbe construed as critical or essential to the invention unless explicitlydescribed as such. Also, as used herein, the article “a” and “one of” isintended to include one or more items. Further, the phrase “based on” isintended to mean “based, at least in part, on” unless explicitly statedotherwise.

What is claimed is:
 1. A method, comprising: receiving, from a userdevice, a search query associated with identifying a plurality ofcurrently airing media content items available from a service provider;searching a database of key words associated with a plurality of mediacontent items to identify a set of media content items having key wordsassociated therewith that match the search query; determining acurrently airing portion of each of the plurality of media content itemsin the set of media content items; determining, for each media contentitem in the set of media content items, whether the matching key word isa global key word representative of the media content item in itsentirety, or a local key word representative of one or more portions ofthe media content item; scoring the set of media content items based onthe currently airing portion and the determining of whether the matchingkey word is a global keyword or a local key word; ranking the set ofmedia content items based on the scoring; and transmitting a listing ofthe ranked set of media content items to the user device for display toa user.
 2. The method of claim 1, wherein the database further comprisesa plurality of entries corresponding to the plurality of media contentitems available from the service provider, wherein each of the pluralityof entries includes one or more sub-entries corresponding to portions ofthe respective media content item.
 3. The method of claim 2, whereinlocal key words for the plurality of media content items are stored inthe sub-entries corresponding to the one or more portion of the mediacontent item that local key word represents.
 4. The method of claim 1,wherein, when it is determined that the matching key word for aparticular media content item in the set of media content items is aglobal key word, calculating the score for the particular media contentitem based on the currently airing portion of the particular mediacontent item relative to a total length of the particular media contentitem.
 5. The method of claim 4, wherein a score for a media content itemhaving a higher percentage of not yet aired content is higher than ascore for a media content item having a lower percentage of not yetaired content.
 6. The method of claim 4, wherein calculating the scorefor the particular media content item is expressed as:score=(n−p+1)/n where n is an integer representing a total number ofportions in the particular media content item and p is an integerrepresenting the currently airing portion.
 7. The method of claim 4,further comprising: when it is determined that the matching key word fora particular media content item in the set of media content items is alocal key word, performing: calculating a score for each portion of theparticular media content item; and aggregating the calculated scores togenerate a score for the particular media content item.
 8. The method ofclaim 7, wherein the score for a particular portion of the particularmedia content item that has a matching local key word associatedtherewith is calculated based on a number of portions of the particularmedia content item between the currently airing portion and theparticular portion of the particular media content item relative to atotal length of the particular media content item.
 9. The method ofclaim 8, wherein calculating the score for the particular portion of theparticular media content item is expressed as:chapter_(q) score=1/(n+q−p), where n is an integer representing a totalnumber of portions in the particular media content item and p is aninteger representing the currently airing portion, and q is an integerrepresenting the particular portion of the particular media contentitem.
 10. The method of claim 7, further comprising: setting scores forpreviously aired portions of the particular media content item andportions of the particular media content item that do not have amatching local key word associated therewith to zero.
 11. The method ofclaim 7, wherein ranking the set of media content items is based on thecalculated scores.
 12. The method of claim 1, further comprising:dynamically scoring the set of media content items that have a matchingkey word associated therewith based on a currently airing portion ofeach media content item relative to the one or more portions of the setof media content items that have a matching key word associatedtherewith; and ranking the set of media content items based on thedynamic scoring, such that the ranking of the set of media content itemsat a first point in time can be different than the ranking of the set ofmedia content items at a second point in time.
 13. A system, comprising:a memory configured to store a database of key words associated with aplurality of media content items, wherein the database further comprisesa plurality of entries corresponding to the plurality of media contentitems available from a service provider, and wherein each of theplurality of entries includes one or more sub-entries corresponding tochapters within the respective media content item; and at least oneprocessor to: receive, from a user, a search query associated withidentifying a plurality of currently airing media content itemsavailable from a service provider; search the database to identify a setof media content items having key words associated therewith that matchthe search query; determine a currently airing chapter of each of aplurality of media content items in the set of media content items;determine, for each media content item in the set of media contentitems, whether the matching key word is a global key word representativeof the media content item in its entirety, or a local key wordrepresentative of one or more chapters within the media content item;score each media content item in the set of media content items based onthe currently airing chapter and the determination of whether thematching key word is a global key word or a local key word; rank the setof media content items based on the scores; and provide a listing of theranked set of media content items to a user device for display to theuser.
 14. The system of claim 13, wherein local key words for theplurality of media content items are stored in the sub-entries.
 15. Thesystem of claim 13, wherein the processor is further to: when it isdetermined that the matching key word for a particular media contentitem in the set of media content items is a global key word, calculatethe score for the particular media content item based on the currentlyairing chapter of the particular media content item relative to a totalnumber of chapters in the particular media content item; and when it isdetermined that the matching key word for a particular media contentitem in the set of media content items is a local key word: calculate ascore for each matching chapter of the particular media content itembased on the proximity of the currently airing chapter to each matchingchapter; and aggregate the calculated scores for each of the matchingchapters to generate the score for the particular media content item.16. The system of claim 15, wherein a score for a media content itemhaving a higher percentage of not yet aired content is higher than ascore for a media content item having a lower percentage of not yetaired content.
 17. The system of claim 15, wherein the score for aparticular matching chapter of the particular media content item thathas a matching local key word associated therewith is calculated basedon a number of chapters between the currently airing chapter and theparticular matching chapter relative to a total length of the particularmedia content item.
 18. The system of claim 15, wherein the processor isfurther configured to: when it is determined that the matching key wordfor a particular media content item in the set of media content items isa local key word: set to zero scores for previously aired chapters ofthe particular media content item and chapters of the particular mediacontent item that do not have a matching local key word associatedtherewith.
 19. A non-transitory computer-readable medium having storedthereon sequences of instructions which, when executed by at least oneprocessor, cause the at least one processor to: receive, from a userdevice, a search query associated with identifying a plurality ofcurrently airing media content items available from a service provider;search a database of key words associated with a plurality of mediacontent items to identify a set of media content items having key wordsassociated therewith that match the search query; determine a currentlyairing portion of each of the plurality of media content items in theset of media content items; determine, for each media content item inthe set of media content items, whether the matching key word is aglobal key word representative of the media content item in itsentirety, or a local key word representative of one or more portions ofthe media content item; score the set of media content items based onthe currently airing portion and the determination of whether thematching key word is a global key word or a local key word; generate aranked listing based on the scores of the set of media content items;and transmit the ranked listing to the user device for display to auser.
 20. The non-transitory computer-readable medium of claim 19,wherein the instructions further cause the at least one processor to:calculate, when the key word is a global key word, the score for theparticular media content item based on the currently airing portion ofthe particular media content item relative to a total length of theparticular media content item; and calculate, when the key word is alocal key word, the score for the particular media content item based ongaps between the currently airing portion of the particular mediacontent item and portions of the particular media content havingmatching local key words, relative to the total length of the particularmedia content item.